using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp;
using CKY.AgentPlatform.Mcp.Dto;

namespace CKY.AgentPlatform.Mcp
{
    /// <summary>
    /// MCP服务器管理应用服务接口
    /// </summary>
    [RemoteService(IsEnabled = true)]
    public interface IMcpServerAppService : IApplicationService
    {
        /// <summary>
        /// 获取MCP服务器列表
        /// </summary>
        /// <param name="input">查询参数</param>
        /// <returns>服务器列表</returns>
        Task<PagedResultDto<McpServerDto>> GetListAsync(GetMcpServerListInput input);

        /// <summary>
        /// 获取MCP服务器详情
        /// </summary>
        /// <param name="id">服务器ID</param>
        /// <returns>服务器详情</returns>
        Task<McpServerDto> GetAsync(Guid id);

        /// <summary>
        /// 创建MCP服务器
        /// </summary>
        /// <param name="input">创建参数</param>
        /// <returns>创建的服务器</returns>
        Task<McpServerDto> CreateAsync(CreateMcpServerInput input);

        /// <summary>
        /// 更新MCP服务器
        /// </summary>
        /// <param name="id">服务器ID</param>
        /// <param name="input">更新参数</param>
        /// <returns>更新后的服务器</returns>
        Task<McpServerDto> UpdateAsync(Guid id, UpdateMcpServerInput input);

        /// <summary>
        /// 删除MCP服务器
        /// </summary>
        /// <param name="id">服务器ID</param>
        Task DeleteAsync(Guid id);

        /// <summary>
        /// 测试连接
        /// </summary>
        /// <param name="id">服务器ID</param>
        /// <returns>测试结果</returns>
        Task<bool> TestConnectionAsync(Guid id);
    }

  }